import os
import sys

"""
简单的应用启动脚本
此脚本演示了如何在避免相对导入问题的情况下启动应用程序。
"""

def main():
    print("===== 资源关系智能问答系统 - 简单启动脚本 ======")
    
    # 设置环境变量
    os.environ['FLASK_ENV'] = 'development'
    os.environ['FLASK_DEBUG'] = 'True'
    os.environ['PYTHONPATH'] = os.path.dirname(os.path.abspath(__file__))
    
    print(f"当前工作目录: {os.getcwd()}")
    print(f"Python路径: {os.environ['PYTHONPATH']}")
    
    # 直接运行app.py文件
    try:
        print("正在启动Flask应用...")
        # 使用subprocess确保可以看到完整的错误输出
        import subprocess
        process = subprocess.Popen(
            [sys.executable, "backend/app.py"],
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True,
            bufsize=1
        )
        
        # 实时输出stdout和stderr
        while True:
            stdout_line = process.stdout.readline()
            stderr_line = process.stderr.readline()
            
            if stdout_line:
                print(f"OUT: {stdout_line.strip()}")
            if stderr_line:
                print(f"ERROR: {stderr_line.strip()}")
            
            # 检查进程是否结束
            if process.poll() is not None:
                # 读取剩余的输出
                for stdout_line in process.stdout:
                    print(f"OUT: {stdout_line.strip()}")
                for stderr_line in process.stderr:
                    print(f"ERROR: {stderr_line.strip()}")
                break
    except Exception as e:
        print(f"启动失败: {e}")
        print("\n故障排除建议:")
        print("1. 确保您的Python版本为3.8或更高版本")
        print("2. 确保所有依赖已安装: python -m pip install -r requirements.txt")
        print("3. 确保.env文件已正确配置")
        print("4. 如果问题仍然存在，请尝试直接运行: python -m flask run --app backend/app.py")

if __name__ == '__main__':
    main()